/**
 * 创建人:  @author huangpeng    
 * 创建时间:  2023年01月07日 12:09
 * 项目名称:  lemon-blog-cloud
 * 文件名称:  BaseService
 * 文件描述:  @Description: 公共service
 * 公司名称:  柠檬
 *
 * All rights Reserved, Designed By 柠檬 
 * @Copyright: 2022-2023
 *
 */
package com.lemon.common.core.base;

/**
 * 包名称：com.lemon.common.core.base
 * 类名称：BaseService
 * 类描述：公共service
 * 创建人：@author huangpeng
 * 创建时间：2023年01月07日 12:09
 */
public interface BaseService<T> {

    /**
     * 添加数据
     * @Title: insert
     * @Description: 添加数据
     * @param model 数据
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2023/1/7 12:11
     */
    int insert(T model);

    /**
     * 更新数据
     * @Title: update
     * @Description: 更新数据
     * @param model 数据
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2023/1/7 12:11
     */
    int update(T model);

    /**
     * 根据主键单条删除
     * @Title: deleteByPrimaryKey
     * @Description: 根据主键单条删除
     * @param id 主键数组
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2023/1/7 12:12
     */
    int deleteByPrimaryKey(Long id);

    /**
     * 根据主键批量删除
     * @Title: deleteByBatch
     * @Description: 根据主键批量删除
     * @param ids 主键数组
     * @return: int
     * @throws:
     * @author: huangpeng
     * @Date: 2023/1/7 12:14
     */
    int deleteByBatch(Long[] ids);

    /**
     * 根据主键获取查询数据
     * @Title: selectByPrimaryKey
     * @Description: 根据主键获取查询数据
     * @param id 主键
     * @return: T
     * @throws:
     * @author: huangpeng
     * @Date: 2023/1/7 16:25
     */
    T selectByPrimaryKey(Long id);
}
